This specification relates to content delivery networks and, in particular, to a system and method for identifying optimal content delivery networks for providing content to client devices.
Content Delivery Networks (CDNs) are frequently used to distribute content, such as images, videos, documents, and software, to client devices of end users. A CDN is typically a large system of servers or nodes distributed around the world that provide the content through a network connection (e.g., the Internet). In general, CDNs allow content to be distributed to end users quickly and reliably, without requiring content developers or providers to make significant investments in new hardware or infrastructure.
In some instances, particularly when there are thousands or millions of client devices distributed around the world, the use of multiple CDNs can improve efficiency by increasing the number of nodes available for content distribution. With multiple CDNs to choose from, proper CDN selection by a client device can be important to ensure that the client device receives content efficiently and with an effective use of system resources. For example, when a user attempts to download a new software application and the download process is inefficient (e.g., greater than just a few seconds), the user may lose patience and decide to abandon the installation, which can represent a lost opportunity for the application provider. Efficient use of CDNs can reduce user frustration by ensuring such downloads are performed as quickly as possible.